// default package
// Generated 2013/07/03 14:17:38 by Hibernate Tools 3.4.0.CR1
package edu.leo.dao.entity;

import java.util.Date;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

/**
 * TContactsHeader generated by hbm2java
 */
@Entity
@Table(name = "t_contacts_header", catalog = "SSHAnnotationSample2")
public class TContactsHeaderJoin implements java.io.Serializable {

    private Long contactsSeq;
    private String name;
    private String nameFamily;
    private String nameGiven;
    private String nameFamilyPhonetic;
    private String nameGivenPhonetic;
    private String nickName;
    private String note;
    private String websiteUrl;
    private Date lastUpdateDate;
    private Date insDate;
    private String insUserId;
    private Date updDate;
    private String updUserId;
    private Date delDate;
    private String delUserId;
    private String delFlg;
    private Long updCnt;

    private Set<TContactsPhone> phoneInfoSet;

    public TContactsHeaderJoin() {
    }

    public TContactsHeaderJoin(Long contactsSeq, Date lastUpdateDate) {
        this.contactsSeq = contactsSeq;
        this.lastUpdateDate = lastUpdateDate;
    }

    public TContactsHeaderJoin(Long contactsSeq, String name, String nameFamily, String nameGiven, String nameFamilyPhonetic, String nameGivenPhonetic, String nickName, String note, String websiteUrl, Date lastUpdateDate, Date insDate, String insUserId, Date updDate, String updUserId, Date delDate, String delUserId, String delFlg, Long updCnt) {
        this.contactsSeq = contactsSeq;
        this.name = name;
        this.nameFamily = nameFamily;
        this.nameGiven = nameGiven;
        this.nameFamilyPhonetic = nameFamilyPhonetic;
        this.nameGivenPhonetic = nameGivenPhonetic;
        this.nickName = nickName;
        this.note = note;
        this.websiteUrl = websiteUrl;
        this.lastUpdateDate = lastUpdateDate;
        this.insDate = insDate;
        this.insUserId = insUserId;
        this.updDate = updDate;
        this.updUserId = updUserId;
        this.delDate = delDate;
        this.delUserId = delUserId;
        this.delFlg = delFlg;
        this.updCnt = updCnt;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "contactsHeaderGen")
    @GenericGenerator(
            name = "contactsHeaderGen", strategy = "org.hibernate.id.enhanced.TableGenerator",
            parameters = { @Parameter(name = "segment_value", value = "t_contacts_header")}
        )
    @Column(name = "contacts_seq", unique = true, nullable = false, precision = 18, scale = 0)
    public Long getContactsSeq() {
        return this.contactsSeq;
    }

    public void setContactsSeq(Long contactsSeq) {
        this.contactsSeq = contactsSeq;
    }

    @Column(name = "name", length = 94)
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = "name_family", length = 30)
    public String getNameFamily() {
        return this.nameFamily;
    }

    public void setNameFamily(String nameFamily) {
        this.nameFamily = nameFamily;
    }

    @Column(name = "name_given", length = 30)
    public String getNameGiven() {
        return this.nameGiven;
    }

    public void setNameGiven(String nameGiven) {
        this.nameGiven = nameGiven;
    }

    @Column(name = "name_family_phonetic", length = 50)
    public String getNameFamilyPhonetic() {
        return this.nameFamilyPhonetic;
    }

    public void setNameFamilyPhonetic(String nameFamilyPhonetic) {
        this.nameFamilyPhonetic = nameFamilyPhonetic;
    }

    @Column(name = "name_given_phonetic", length = 50)
    public String getNameGivenPhonetic() {
        return this.nameGivenPhonetic;
    }

    public void setNameGivenPhonetic(String nameGivenPhonetic) {
        this.nameGivenPhonetic = nameGivenPhonetic;
    }

    @Column(name = "nick_name", length = 30)
    public String getNickName() {
        return this.nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    @Column(name = "note", length = 4000)
    public String getNote() {
        return this.note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    @Column(name = "website_url", length = 200)
    public String getWebsiteUrl() {
        return this.websiteUrl;
    }

    public void setWebsiteUrl(String websiteUrl) {
        this.websiteUrl = websiteUrl;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "last_update_date", nullable = false, length = 19)
    public Date getLastUpdateDate() {
        return this.lastUpdateDate;
    }

    public void setLastUpdateDate(Date lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "ins_date", length = 19)
    public Date getInsDate() {
        return this.insDate;
    }

    public void setInsDate(Date insDate) {
        this.insDate = insDate;
    }

    @Column(name = "ins_user_id", length = 20)
    public String getInsUserId() {
        return this.insUserId;
    }

    public void setInsUserId(String insUserId) {
        this.insUserId = insUserId;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "upd_date", length = 19)
    public Date getUpdDate() {
        return this.updDate;
    }

    public void setUpdDate(Date updDate) {
        this.updDate = updDate;
    }

    @Column(name = "upd_user_id", length = 20)
    public String getUpdUserId() {
        return this.updUserId;
    }

    public void setUpdUserId(String updUserId) {
        this.updUserId = updUserId;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "del_date", length = 19)
    public Date getDelDate() {
        return this.delDate;
    }

    public void setDelDate(Date delDate) {
        this.delDate = delDate;
    }

    @Column(name = "del_user_id", length = 20)
    public String getDelUserId() {
        return this.delUserId;
    }

    public void setDelUserId(String delUserId) {
        this.delUserId = delUserId;
    }

    @Column(name = "del_flg", length = 1)
    public String getDelFlg() {
        return this.delFlg;
    }

    public void setDelFlg(String delFlg) {
        this.delFlg = delFlg;
    }

    @Column(name = "upd_cnt")
    public Long getUpdCnt() {
        return this.updCnt;
    }

    public void setUpdCnt(Long updCnt) {
        this.updCnt = updCnt;
    }

    @OneToMany(cascade = { CascadeType.ALL }, orphanRemoval = false, fetch = FetchType.LAZY)
    @JoinColumn(name = "contacts_seq")
    public Set<TContactsPhone> getPhoneInfoSet() {
        return phoneInfoSet;
    }

    public void setPhoneInfoSet(Set<TContactsPhone> phoneInfoSet) {
        this.phoneInfoSet = phoneInfoSet;
    }

}
